/**
Koa 是一个由 Express 的原始团队创建的 Node.js Web 框架，旨在成为一个更小、更富表现力和更强大的基础。Koa 的设计理念是通过使用生成器（Generators）和中间件（Middleware）来简化异步编程，使得开发者能够更方便地构建 Web 应用程序。
  1. 安装 Koa
  首先，你需要安装 Koa。可以使用 npm 来安装：
  npm install koa
  2. 创建一个 Koa 应用

  创建一个新的 JavaScript 文件（例如  `app.js` ），并在其中引入 Koa：
  const Koa = require('koa');
  const app = new Koa();
  3. 编写中间件

  Koa 使用中间件的概念来处理请求和响应。你可以定义一个或多个中间件函数，并通过  `app.use()`  方法将它们添加到应用程序中。
  app.use(async (ctx, next) => {
      // 在这里可以处理请求
      ctx.body = 'Hello, Koa!';
      await next(); // 调用下一个中间件
  });
  4. 启动服务器

  使用  `app.listen()`  方法来启动 Koa 服务器，指定监听的端口：
  const PORT = 3000;
  app.listen(PORT, () => {
      console.log(`Server is running on http://localhost:${PORT}`);
  });
  5. 完整示例

  下面是一个完整的 Koa 应用示例：
  const Koa = require('koa');
  const app = new Koa();

  app.use(async (ctx, next) => {
      ctx.body = 'Hello, Koa!';
      await next();
  });

  const PORT = 3000;
  app.listen(PORT, () => {
      console.log(`Server is running on http://localhost:${PORT}`);
  });
  6. 中间件的使用

  Koa 的中间件是由一个函数组成的，可以进行请求的处理、响应的修改等。中间件可以通过  `await next()`  来调用下一个中间件。

  7. 错误处理

  可以通过定义一个错误处理中间件来捕获和处理错误：
  app.use(async (ctx, next) => {
      try {
          await next();
      } catch (err) {
          ctx.status = err.status || 500;
          ctx.body = { message: err.message };
      }
  });
  8. 路由处理

  Koa 本身不包含路由功能，但可以使用第三方库（如  `koa-router` ）来实现路由功能：
  npm install koa-router
  使用  `koa-router`  的示例：
  const Router = require('koa-router');
  const router = new Router();

  router.get('/', async (ctx) => {
      ctx.body = 'Home Page';
  });

  router.get('/about', async (ctx) => {
      ctx.body = 'About Page';
  });

  app.use(router.routes());
  总结
  Koa 是一个灵活且强大的框架，适合构建现代的 Web 应用。通过中间件的方式，可以实现请求处理、错误处理、路由等各种功能。由于其设计简洁，Koa 使得开发者能够更高效地进行开发。
 */
const Koa = require("koa");

const app = new Koa();

app.use((ctx, next) => {
  console.log("匹配到koa的中间件");
  ctx.body = "Hello Koa!";
});

// 启动服务器
app.listen(6000, () => {
  console.log("koa服务器启动成功~");
});
